﻿namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RectifiedGridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeometricComplexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeometricAggregateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiPolygonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiLineStringType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiPointType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiGeometryType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractRingType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RingType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearRingType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeometricPrimitiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrientableSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TriangulatedSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TinType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PolyhedralSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PolygonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrientableCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LineStringType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PointType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    public abstract class AbstractGeometryType : AbstractGMLType, ISRSReferenceGroup
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("gid")]
        public string Gid { get; set; }

        #region ISRSReferenceGroup Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("srsName", DataType = "anyURI")]
        public string SrsName { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("srsDimension")]
        public string SrsDimension { get; set; }

        #endregion

        #region ISRSInformationGroup Members

        /// <summary>
        /// Ordered list of labels for all the axes of this CRS. The gml:axisAbbrev value should be used for these axis 
        /// labels, after spaces and forbiddden characters are removed. When the srsName attribute is included, this attribute is optional. 
        /// When the srsName attribute is omitted, this attribute shall also be omitted.
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute("axisLabels")]
        public string AxisLabels { get; set; }

        /// <summary>
        /// Ordered list of unit of measure (uom) labels for all the axes of this CRS. The value of the string in the 
        /// gml:catalogSymbol should be used for this uom labels, after spaces and forbiddden characters are removed. When the 
        /// axisLabels attribute is included, this attribute shall also be included. When the axisLabels attribute is omitted, this attribute 
        /// shall also be omitted.
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute("uomLabels")]
        public string UomLabels { get; set; }

        #endregion
    }
}
